gusucode.com > 耐品图片管理系统 标准版A > 耐品图片管理系统 标准版A/Inc/jsSelect.js
function getRoute(dic,value,mode){ var strRoute,intDepth=-1; for(var i=dic.length-1;i>-1;i--){ if(intDepth>-1){ if(intDepth==0) return(strRoute); if(dic[i][0]<intDepth){ strRoute=i+","+strRoute; intDepth--; } }else{ if(dic[i][mode]==value){ strRoute=i.toString(); intDepth=dic[i][0]; } } } return(strRoute); } function getRoutes(dic,route,mode){ var strRoute="",depth=0; var arrRoute=route.split(","); var intDepth=arrRoute.length-1; for(var i=0;i<dic.length;i++){ if(dic[i][mode]==arrRoute[depth]){ if(strRoute)strRoute+=","+i; else strRoute=i.toString(); if(depth==intDepth)return(strRoute); else depth++; } } return(strRoute); } function drawSelect(obj,dicName){ var argv=drawSelect.arguments; var argc=drawSelect.arguments.length; var mode=(argc>2)?argv[2]:0; var name=(argc>3)?argv[3]:""; var value=(argc>4)?argv[4]:""; var tips=(argc>5)?argv[5]:""; var prop=(argc>6)?argv[6]:""; var dic=eval(dicName),objValue=""; switch(mode){ case 0:value=getRoute(dic,value,2);mode=5;break; case 1:value=getRoutes(dic,value,1);mode=6;break; case 2:value=getRoute(dic,value,1);mode=7;break; case 3:value=getRoutes(dic,value,2);mode=8;break; } var strRoute="",arrRoute=new Array(); if(value)arrRoute=value.split(","); var strHtml="",arrHtml=new Array(); var intDepth,strTitle,strValue,j,selDepth=0; for(var i=0;i<dic.length;i++){ intDepth=dic[i][0];strTitle=dic[i][1];strValue=dic[i][2]; if(intDepth==selDepth){ if(arrHtml[selDepth]==null){ arrHtml[selDepth]="<select onChange={drawSelect(this.parentNode,\""+dicName+"\","+mode+",\""+name+"\",this.value,\""+tips+"\",\""+prop+"\")} "+prop+">"; if(tips){ if(selDepth)arrHtml[selDepth]+="<option value=\""+strRoute+"\">"+tips+"</option>"; else arrHtml[selDepth]+="<option value=\"\">"+tips+"</option>"; if(arrRoute[selDepth]==null)arrRoute[selDepth]=-1; }else if(arrRoute[selDepth]==null)arrRoute[selDepth]=i; } if(i==arrRoute[selDepth]){ arrHtml[selDepth]+="<option value=\""+strRoute+i.toString()+"\" selected>"+strTitle+"</option>"; selDepth++; strRoute+=i.toString()+","; switch(mode){ case 5:objValue=strValue;break; case 6:if(objValue)objValue+=","+strTitle;else objValue=strTitle;break; case 7:objValue=strTitle;break; case 8:if(objValue)objValue+=","+strValue;else objValue=strValue;break; } }else{ arrHtml[selDepth]+="<option value=\""+strRoute+i.toString()+"\">"+strTitle+"</option>"; } }else if(intDepth<selDepth){ selDepth=intDepth; strRoute=""; for(j=0;j<selDepth;j++)strRoute+=arrRoute[j]+","; arrHtml[selDepth]+="<option value=\""+strRoute+i.toString()+"\">"+strTitle+"</option>"; } } for(i=0;i<arrHtml.length;i++){ strHtml+=arrHtml[i]+"</select>"; } strHtml+="<input type=\"hidden\" value=\""+objValue+"\" name=\""+name+"\" id=\""+name+"\">"; if(obj==null)document.write("<span>"+strHtml+"</span>"); else obj.innerHTML=strHtml; }